iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Modern Web

想轉職的鯊魚從零基礎開始學習JavaScript系列 第 8

想轉職的鯊魚從零基礎開始學習JavaScript Day-08 Object types 與 Gobal object

  • 分享至 

  • xImage
  •  

前言

鯊魚今天想要吃拉麵!!!

鯊魚要趕快完成鐵人賽文章,然後去吃拉麵。

Object type 物件型別

因為Object types(物件型別)裡面就有一個型別叫做Object(物件)

在理解什麼是Object types(物件型別)的時候,很容易歪到Object(物件)

那什麼是Object types(物件型別)呢?這個問題很難給予一個明確的答案

Object types(物件型別)的內容很多,而且個別的差異很大

很難給予一個解釋去概括他們,所以只能從反方向去解釋

依據犀牛第七版(指JavaScript大全,這本書的封面是一隻犀牛,所以有這個稱呼)的說法

任何不是數字(number及bigint)、字串(string)、Boolean值、符號(symbol)、

null或undefined的JavaScript值都是Object types(物件型別)

更簡略的說,只要不是Primitive types(基礎型別)的都是Object types(物件型別)

常用的Object types(物件型別)有下面幾種,這邊先做簡單的概述:

  • object(物件)
    是屬性的集合體,基本樣式是前後一組{}braces/curly brackets(大括號/花括號)
    裡面可以放多組的key跟對應的value,就像是下面這樣;
// 創建一個物件shark
let shark ={situation:"相當的飢餓",wantEat:"拉麵"};
// 呼叫物件shark,可以看到object(物件)的整體
shark
{situation: '相當的飢餓', wantEat: '拉麵'}

如果要個別呼叫單獨呼叫object(物件)裡面的內容,就要利用物件key去呼叫對應的value

// 方法有兩種:一是在物件名稱後面加上一個.(dot)之後再接一個key
shark.situation
// '相當的飢餓'
// 其二:在物件名稱後面用一組[]裡面放入key的字串
shark["wantEat"]
// '拉麵'
// 就能呼叫出相對應的value值了
  • array(陣列)
    剛剛介紹的Object是一個具名的無序群集,
    既然有無序群集就會有有序群集,array陣列就是一個有序的群集,
    基本樣式是前後一組[]bracket/square brackets(中括號/方括號)
    裡面由多組value組成,像是下面這樣;
let sharkEat = ["醬油拉麵","招牌豚骨拉麵"]
// 呼叫物件sharkEat,可以看到array(陣列)的整體
sharkEat
// (2) ['醬油拉麵', '招牌豚骨拉麵']

如過要個別呼叫array(陣列)的value,就要運用array(陣列)的索引
依排列的順序,作為呼叫他們的key,第一個value的索引是0,後面索引依序增加

sharkEat[0]
// '醬油拉麵'
sharkEat[1]
// '招牌豚骨拉麵'
// 就能呼叫出相對應的value值了
  • function(函式)
    function(函式)是Javascript的程式碼區塊,經過定義之後可以透過呼叫去重複執行
    指定的運算,定義函式的基礎樣式如下
function 函式名稱(輸入的參數){
  要執行的運算
};
function output(name){
  console.log(`Hello,I'm ${name}`)
};

其中這個函式名稱叫做output,呼叫的時候就是用函式名稱去呼叫這個函式
輸入的參數為name,為下面運算是要用的的數據,可0個或是多個
要執行的運算式console.log(`Hello,I'm ${name}.`)
試著呼叫這個函式,並將Shark當作參數傳入裡面,如下面演示

output("Shark")
//Hello,I'm Shark.

Gobal object(全域物件)

之前說過沒有宣告的變數或是經過var宣告的參數都會被做稱作全域變數

那什麼是全域,全域完整德稱呼是Gobal object(全域物件)

是一個JavaScript必定會先載入的預設環境

可以不需要經過宣告賦值/定義就能直接使用的變數/函式都是全域物件的東西

就像是之前常用的console.log(),就是全域物件預設好的function

如過放在瀏覽器上面,就是window,可以用window去窺視他的全貌

window
// Window {window: Window, self: Window, document: document, name: '', location: Location, …}

每個分頁都會賦予一個全新的Gobal object,彼此間不會相互衝突

而全域物件跟一般物件在運用上有一個不一樣的地方,

呼叫他的key時候不需要加上物件名(但也可以加)

就像下面這樣

window.console.log("鯊魚想吃拉麵")
console.log("鯊魚想吃拉麵")
// 鯊魚想吃拉麵
// 都可以執行,而且結果都一樣

結語

鯊魚想吃拉麵,所以鯊魚很努力的完成他了

JavaScript的八種型別都先簡單的概述一遍了,入門已經結束,

JavaScript很多觀念都是環環相扣的,我希望能先概略認識他們一遍之後

才開始更深入地去了解它們了。

不然研究到一半碰到新東西,又會是滿頭困惑,

循序漸進很重要,如果有更好的學習順序也歡迎讓鯊魚知道,

讓鯊魚有的更好的方法騙人引領新手進來這門領域。

鯊語錄

參考資料

JavaScript大全第七版


上一篇
想轉職的鯊魚從零基礎開始學習JavaScript Day-07 null、undefined及symbol
下一篇
想轉職的鯊魚從零基礎開始學習JavaScript Day-09 expression(運算式)與operator(運算子)
系列文
想轉職的鯊魚從零基礎開始學習JavaScript31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言